home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1996 #14
/
Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO
/
prog_bas
/
msgbxcls.zip
/
README.TXT
< prev
Wrap
Text File
|
1996-01-06
|
5KB
|
131 lines
MsgBox is a simple class module that provides (hopefully) a
useful bit of functionality. The VB MsgBox function has had some
idiosyncrasies in the past which may still exist in VB4 (though
I'm not sure of it). Under VB3 I used a wrapper function around
the API MessageBox function as a replacement. Now I've ported it
to VB4 and made it an object (i.e. class). Creating new versions
should be easy as well. You can replace the MessageBox call with
your own form and code, make message boxes that time-out, add
animation capabilities, use custom icons, etc.
This software, and the included source code, is FREEWARE.
You may use it as you see fit in your own projects but you may
not re-sell the original or a derivative. If you redistribute
it you must include this disclaimer and all original copyright
notices.
No warranty is inferred or implied, as always seems to be the
case with software these days. Use at your own risk. Keep away
from small children. Don't exceed recommended dosage. I'm not
liable, I'm not liable, I'm not liable.
I'd love to see people improve upon this work. Please keep me
posted if you do. If you should happen to change the behavior
in a derivative version please change the class name so as not
to cause problems with existing code.
Enjoy!
--Gregg Irwin [72450,676]
--------------------------------------------------------------
Possible Enhancements
I'm thinking about the HelpFile and Context options that
the VB MsgBox function now offers. This would require
using the MessageBoxIndirect API function which isn't
available under Win16 (AFAIK). MessageBoxIndirect requires
a callback function to process Help commands so, if you
want to add HelpFile and Context properties your best bet
might be to use the VB MsgBox function internally rather
than the API calls.
MessageBoxEx could also be used to add multi-language
support.
--------------------------------------------------------------
What's New? 01/06/96
The MsgBox class is unchanged. The sample project, though,
now inlcudes a code generator that will generate code to
paste into your projects. This lets you use the sample
project as a message box designer.
The generated code is placed into a text box so you can
review it and copy it to the clipboard to paste into your
projects. Since all the source is included you can tweak
the code generator to match your standards and style.
The code generator isn't a great piece of sample code
because I put it together very quickly. It can certainly
be improved. Thanks to Bill Antonacchio for the impetus.
--------------------------------------------------------------
Q. How do I use it?
A. It's easy.
1. Dim a variable to hold the message box.
Example: Dim MB As New clsMsgBox
2. Set the Title of the message box.
Example: MB.Title = "Reformat Drive"
3. Set the Message of the message box.
Example: MB.Message = "Are you sure you want to do that?"
4. Set the Style of the message box.
Example: MB.Style = vbYesNo + vbQuestion
5. Display the message box and handle the return value.
Example: Dim Rtn as Integer
Rtn = MB.ShowModal
--------------------------------------------------------------
Q. What if I hate setting all those properties? I'd rather
use it like the MsgBox function in VB.
A. No problem. The ShowModal method takes all the required
settings as optional parameters.
Example: Rtn = MB.ShowModal(Msg, Style, Title, (FormX.HWnd))
Note: The final HWnd parameter is used by the API
MessageBox function.
--------------------------------------------------------------
Q. Why a class module?
A. Why not? It has a defined interface. It provides
encapsulation. It allows you to create multiple instances
easily. It can be used as an OLE server. It can raise
errors effectively. 'nuff said?
--------------------------------------------------------------
Q. What if I have suggestions, requests, or improvements?
A. Send them to me and I'll get back to you as quickly as I
can. Hopefully we can make it a community effort and build
up a good library of tools that we can all draw upon.
--------------------------------------------------------------
Q. What if it has a bug in it that costs me millions of
dollars?
A. Re-read the disclaimer and let me know about the bug
please.<g>
--------------------------------------------------------------